package com.headFirstModel.factoryPattern.abstractFactory;

/**
 * 披萨店抽象：
 *      每一家实体店实现该披萨店超类
 */
public abstract class PizzaSotre {

    /**
     * 生产披萨
     * @param type
     * @return
     */
    Pizza orderPizza(String type){
        Pizza pizza;
        pizza=createPizza(type);
        pizza.prepare();
        pizza.bake();
        pizza.cut();
        pizza.box();
        return pizza;
    }

    /**
     * 每一家店定义自己的披萨种类及生产流程
     * @param type
     * @return
     */
    protected abstract Pizza createPizza(String type);
}
